#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
//编写一个程序，至少创建2个线程，两个线程都循环执行，一个线程每隔1秒输出我是线程1，另一个线程每隔1秒输出我是线程2 
#define COUNT_EXEC 5 // 执行次数
pthread_mutex_t lock; // 全局互斥锁
void* Handle(void* args)
{
    pthread_t thread_id = pthread_self();
    char* words = (char*)args;
    for(size_t i=0;i<COUNT_EXEC;i++)
    {
        pthread_mutex_lock(&lock);
        printf("我是线程:%ld----我想说:%s\n",(long)thread_id,words);
        fflush(stdout); // 强制刷新输出缓冲区 
        pthread_mutex_unlock(&lock);
        sleep(1);
    }
}
int main()
{
    pthread_t thread1,thread2;
    pthread_mutex_init(&lock, NULL); // 初始化互斥锁
    if(pthread_create(&thread1,NULL,Handle,"我是线程1"))
    {
        perror("创建线程失败\n");
        return -1;
    }
    if(pthread_create(&thread2,NULL,Handle,"我是线程2"))
    {
        perror("创建线程失败\n");
        return -1;
    }
    pthread_join(thread1,NULL);
    pthread_join(thread2,NULL);
    pthread_mutex_destroy(&lock); 
    return 0;
}
